package com.cloud.sysmana.ser;

import java.util.List;

import com.cloud.sysmana.dto.SysStore;
import com.cloud.sysmana.entity.SysUser;
import com.cloud.sysmana.entity.SysUserRole;
import com.cloud.util.base.RetType;
import com.cloud.util.page.PageInfo;

/**
 * 系统用户服务类
 * @author gaof
 * @date 2016年7月8日
 */
public interface ISysUserService {

	/**
	 * 获取系统用户分页数据
	 * @param pageInfo
	 * @param dataStore 
	 * @return
	 */
	public PageInfo listUserPage(PageInfo pageInfo, SysStore dataStore);

	/**
	 * 删除系统用户(批量)
	 * @param ids
	 * @return
	 */
	public RetType delSysUser(String ids);

	/**
	 * 通过Id查找系统用户
	 * @param userId
	 * @return
	 */
	public SysUser getUserById(int userId);
	
	/**
	 * 通过userJobId查找对应的名称
	 * @param id
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public List getUserJobNameById(Integer id);

	/**
	 * 添加编辑系统用户
	 * @param sysUser
	 * @param roles 
	 */
	public void updateSysUser(SysUser sysUser, String[] roles);

	/**
	 * 重置系统用户密码
	 * @param id
	 */
	public void resetPWD(int id);

	/**
	 * 修改密码
	 * @param userId
	 * @param newPWD2
	 */
	public void editPWD(Integer userId, String newPWD2);
	
	/**
	 * 通过用户id获取用户角色
	 * @param userId
	 * @return
	 */
	public List<SysUserRole> listUserRolesByUserId(int userId);

	/**
	 * 验证用户名是否已经存在
	 * @param name
	 * @return
	 */
	public String getUserNameIsExist(String name);

	/**
	 * 验证单位监管或者单位主管是否已经存在
	 * @param deparId
	 * @param userJobId
	 * @return
	 */
	public String getChargeIsExist(String deparId, String userJobId);

}
